iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0

一、認識 Mapping
概念說明:Mapping很像一個Hash Table(雜湊表),常用於一對一或一對多對應的資料儲存。
例如:
• 銀行帳戶對應存款金額
• 學生姓名對應成績

在這樣的狀況下:
•「key(鍵)」:用來對應資料(例如帳戶名、學生名)
•「value(值)」:對應的數值(例如金額、成績)

注意事項:
• Mapping並不是拿來存取key或value的資料庫,也沒有「長度」資訊。
• 它的運作方式像Hash Table,會根據key的雜湊值(keccak)去找到對應的value。
• 若key尚未被使用,系統會自動將該key對應的value初始化為0。
• 所以mapping沒有「不存在」的概念,只有「值為 0」的情況。

二、宣告 Mapping

語法格式如下:

mapping(key型別 => value型別) 名稱
mapping(string => uint) number  // 學生名對應成績,命名為 number

三、Mapping 的刪除
若要刪除 Mapping 內特定 key 對應的值,必須使用正確語法:
delete map[Zona];

注意:
• delete x; 只能用於一般變數(如 uint x=2; delete x; → x=0)。
• 但若是mapping,需要指定key,例如delete map[Zona];。
• 單純delete Zona; 是無法刪除mapping內的資料的。

四、Message
由兩種格式組成:
• Sender:傳送者來源位置(msg.sender)
• Value:傳送者送過來的 Wei(msg.value)

Tips
Mapping也是時常會使用到的,請牢記好它的特質。

五、參考來源
1.Solidity 30 天實戰教學 (2020) - Day 4 - Layout of a solidity code


這章節介紹了什麼是Mapping,下一章節要繼續來實作~

第二十四天書中的語錄是:
不知道各位讀者讀到這邊時還好嗎?如果覺得很累的話,也可以掃描每章節前面的QR Code,用聽的方式也能輔助你了解章節內容喔。找到最適合自己的方法才是最重要的!

(前面的文章我有附上作者影片,可點進去連結觀看)


上一篇
23:Solidity實作(1)
下一篇
25:Solidity實作(2)
系列文
從零開始的區塊鏈學習30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言